Cross sections format modification and EEDF solver correction - #2172
Cross sections format modification and EEDF solver correction#2172Gaetanosaure wants to merge 17 commits into
Conversation
…h respect to the new cross-sections format
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2172 +/- ##
==========================================
+ Coverage 78.35% 78.41% +0.06%
==========================================
Files 462 463 +1
Lines 55749 56218 +469
Branches 9155 9251 +96
==========================================
+ Hits 43682 44085 +403
- Misses 8999 9007 +8
- Partials 3068 3126 +58 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Hi @speth and @BangShiuh , here is the pull request for the modification of the cross-sections format. Let me know your thinking about this. Some of the CI checks fail because of example_data which is not modified yet, so the format changes cause crashes. If you agree to the proposed format, I'll reformat the relevant data in it and create a separate example_data repository pull request. |
|
Hi @Gaetanosaure, this is my high-level review for this PR:
I will review the code again later. We can proceed if @speth thinks this PR is good to go. As usual, we need clear documentation and a PR description that states which functionality and features we are changing, and the test associated with the change. Thank you for working on this! |
|
Thanks for your feedback @BangShiuh , I agree that there is definitely something to check on the side of the LXCat data format. As for the retaining of the old format for YAML cross-sections, I agree but maybe we need to put a fail-safe, like raising an error in the case of EEDF calculations using the Boltzmann solver and trying to use this format, and only accept it in the case of a prescribed EEDF. Let's wait for the thoughts of @speth on this to choose the final functionalities and code format. |
This Pull request follows three previous pull requests aiming at the improvement of the low temperature plasma modelling capabilities of Cantera.
The first pull request that proposed a lot of changes (#2121) was split in smaller pull requests, two of them which already got integrated:
#2144 addressed points 2, 3 and 4 of the original PR.
#2145 addressed points 6 and 7 of the original PR.
The present PR addresses the last two remaining points of the initial pull request:
Running the same case as the Cantera example for some additional reduced electric fields yields a perfect agreement with BOLOS:
The idea of this YAML format for electron collision reactions is to separate the data needed for the chemical solver from the data needed for the EEDF solver, the ultimate goal being to allow for a minimal user error while manipulating the cross-section datasets (which remains as close as possible to the original LXcat reference). However, you made a good point in the previous discussions by stressing that the reactions should not duplicate information from the cross-sections. Therefore, now all the information is stored in the cross-sections, which are themselves all stored in the electron-collisions YAML node for safety and clarity purposes. To link the reactions involving electron collisions to their data, a field “name” was added to the cross-sections.
This field is constructed from the cross-section data taken from the LXCat database as follows: databaseName_target_kind_product_threshold to create a unique identifier that is then declared in the appropriate reaction in the reaction YAML node if this reaction if wished by the user to be taken into account into the chemistry.
All relevant tests and documentation have been modified accordingly, so for further details you may also find useful to consult the updated documentation of this PR.
Limited use of generative AI for the actual code itself and for documentation.
Standard or boilerplate code snippets were generated with AI and manually reviewed;
all design, logic, and implementation decisions were made by the contributor.
Examples: IDE code-completions or brief LLM queries for common patterns.
Extensive use of generative AI for the tests.
Significant portions of code or documentation were generated with AI, including
logic and implementation decisions. All generated code and documentation were
reviewed and understood by the contributor. Examples: Output from agentic coding
tools and/or substantial refactoring by LLMs (web-based or local).